/* 
 * VinculoController.java
 * Copyright (c) Faculdade Anhanguera de Anápolis.
 * Tecnologia em Análise e Desenvolvimento de Sistemas.
 * Projeto Multidisciplinar de Autoaprendizagem.
 *
 * Este software é confidencial e propriedade da Faculdade Anhanguera de Anápolis.
 * Não é permitida sua distribuição ou divulgação do seu conteúdo sem expressa autorização da Faculdade Anhanguera de Anápolis.
 * Este arquivo contém informações proprietárias.
 */
package br.com.pma.chamatec.controller;

import java.util.List;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.inject.Inject;

import br.com.pma.chamatec.business.IUnidadeBO;
import br.com.pma.chamatec.business.IUsuarioBO;
import br.com.pma.chamatec.exception.ChamatecNegocioException;
import br.com.pma.entity.Unidade;
import br.com.pma.entity.Usuario;

/**
 * Controlador para o Caso de Uso Vincular Unidade com Usuário.
 * 
 * @author Ludemeula Fernandes de Sá
 */
@ManagedBean
@ViewScoped
public class VinculoController extends AbstractController {
	private static final long serialVersionUID = 338309260712278706L;

	@Inject
	private IUsuarioBO usuarioBO;

	@Inject
	private IUnidadeBO unidadeBO;

	private List<Usuario> usuarios;
	private List<Unidade> unidades;

	
	
	/**
	 * @see br.com.pma.chamatec.controller.AbstractController#init()
	 */
	@Override
	public void init() {
		super.init();
		try {
			if (usuarios == null || usuarios.size() == 0) {
				usuarios = usuarioBO.getListDescricao();
			}

			if (unidades == null || unidades.size() == 0) {
				unidades = unidadeBO.getListDescricao();
			}
		} catch (ChamatecNegocioException e) {
			addFacesMessage(e.getMessage(), FacesMessage.SEVERITY_ERROR);
		} catch (Exception e) {
			montaMensagemGenerica(e);
		}
	}
	
	/********************************************* Getters e Setters *****************************************************/
	/**
	 * @return the usuarios
	 */
	public List<Usuario> getUsuarios() {
		return usuarios;
	}

	/**
	 * @param usuarios
	 *            the usuarios to set
	 */
	public void setUsuarios(List<Usuario> usuarios) {
		this.usuarios = usuarios;
	}

	/**
	 * @return the unidades
	 */
	public List<Unidade> getUnidades() {
		return unidades;
	}

	/**
	 * @param unidades
	 *            the unidades to set
	 */
	public void setUnidades(List<Unidade> unidades) {
		this.unidades = unidades;
	}
}